The present invention relates to an extended data model for a database management system (DBMS).
FIG. 1 shows a database model, comprising a number of core entities 10. Each core entity 10 is typically a database table comprising a plurality of objects, each object having one or more attributes. Core entities may be related by having attributes in common. In, for example, an oil field database application, although it will be seen that the invention is not limited to this industry, a core entity may be a table including oil well names, each having a well identifier. This core entity may be related to another entity, containing oil well owner information via the well identifier attribute.
Typically, oil field database applications manage vast amounts of information divided into data entities with complex relationships. The market for such large applications is limited to a small number of clients who rely on the software supplier to customise the core application to their requirements, rather than such customisation being carried out by the clients, as is generally the case with low cost high volume applications.
Large applications can include very complex data models and are usually searched using structured query language (SQL) expressions. For more information on the use of structured query language see xe2x80x9cA Guide to SQLxe2x80x9d, Philip J. Pratt, Boyd and Fraser Pub Co, February 1995, ISBN: 0877095205. Search expressions may be quite complex and their results may be relied upon to produce appropriate reports within the database application. It is often the case, that a software supplier will be required to customize an application for one or more clients or even for one or more sites controlled by a single client. Such customization can involve updating and, in particular, extending a data model for the customized application and can be quite complicated and time consuming to complete. For example, the effects of a change in the data model have to be checked against each search and report generated from the data model and vice versa.
Using traditional techniques, software suppliers end up customizing the core application for each client to the extent that they must maintain a different application for each client and each site individually. This makes it difficult to update the core application without affecting its customisations and leads to high development costs, reduced reliability and slower turnaround times which is clearly unacceptable.
There is therefore a requirement for a more generic way of handling small extensions to a data model on an ongoing basis. This would allow client and site-specific extensions necessitating little, if any, intervention from the software supplier, nonetheless these extensions should not affect the core of the application and should leave the supplier free to update the core and make necessary changes to other client applications.
Accordingly, the present invention provides a database management system (DBMS) adapted to store information in a data model having one or more core entities, each core entity including one or more core attributes and being adapted to store core objects having said core attributes, said DBMS including a set of generic tables adapted to store extended data model data, said tables including a new attribute definition table for associating a new attribute with an existing table and a new data table for storing new attribute values for core objects.
The DBMS according to the invention allows the following types of site-specific extensions: addition of new attributes to an existing database entity; addition of a new entity to the data model with an arbitrary number of attributes; and addition of a relationship between a new entity and another entity.
The DBMS operates on a data model including a generic structure. This generic structure forms pail of the data model delivered to all sites. It is therefore easily supported in data migration between successive versions of the DBMS.